Spectral clustering using sequential matrix compression

ABSTRACT

A clustering system generates an original Laplacian matrix representing objects and their relationships. The clustering system initially applies an eigenvalue decomposition solver to the original Laplacian matrix for a number of iterations. The clustering system then identifies the elements of the resultant eigenvector that are stable. The clustering system then aggregates the elements of the original Laplacian matrix corresponding to the identified stable elements and forms a new Laplacian matrix that is a compressed form of the original Laplacian matrix. The clustering system repeats the applying of the eigenvalue decomposition solver and the generating of new compressed Laplacian matrices until the new Laplacian matrix is small enough so that a final solution can be generated in a reasonable amount of time.

BACKGROUND

The development of information systems, such as the Internet, and various online services for accessing the information systems, has led to the availability of increasing amounts of information. As computers become more powerful and versatile, users are increasingly employing their computers for a broad variety of tasks. Accompanying the increasing use and versatility of computers is a growing desire on the part of users to rely on their computing devices to perform their daily activities. For example, anyone with access to a suitable Internet connection may go “online” and navigate to the information pages (i.e., the web pages) to gather information that is relevant to the user's current activity.

Many search engine services, such as Google and Yahoo!, provide for searching for information that is accessible via the Internet. These search engine services allow users to search for display pages, such as web pages, that may be of interest to users. After a user submits a search request (i.e., a query) that includes search terms, the search engine service identifies web pages that may be related to those search terms. To quickly identify related web pages, the search engine services may maintain a mapping of keywords to web pages. This mapping may be generated by “crawling” the web (i.e., the World Wide Web) to identify the keywords of each web page. To crawl the web, a search engine service may use a list of root web pages to identify all web pages that are accessible through those root web pages. The keywords of any particular web page can be identified using various well-known information retrieval techniques, such as identifying the words of a headline, the words supplied in the metadata of the web page, the words that are highlighted, and so on. The search engine service may generate a relevance score to indicate how relevant the information of the web page may be to the search request based on the closeness of each match, web page importance or popularity (e.g., Google's PageRank), and so on. The search engine service then displays to the user links to those web pages in an order that is based on a ranking determined by their relevance.

Unfortunately, users of the information systems may encounter an information overload problem. For example, the search engine services often provide users a large number of search results, thus forcing the users to sift through a long list of web pages in order to find the relevant web pages.

Clustering techniques have been used to help organize objects that are similar or in some way related. These objects can include people, documents, web sites, events, news stories, and so on. For example, if the web pages of a search result are clustered based on similarity to one another, then the user can be presented with a list of the clusters, rather than a list of individual documents. As a result, the user will be presented with clusters of documents covering diverse topics on the first web page of the search result, rather a listing of individual documents that may all be very similar. Because of the large numbers of web-based objects (e.g., web pages, blocks of web pages, images of web pages, and web sites), it can be very computationally expensive to cluster such large numbers of objects.

Spectral clustering techniques have proved effective at clustering objects. The uses of spectral clustering has, however, been mainly restricted to small-scale problems because of the high computational complexity of spectral clustering. Spectral clustering represents the objects to be clustered and the relationship between the objects as a graph. A graph may be represented as G=<V, E>, where V={1, 2, . . . , n} is the set of vertices and E={<i, j>|i, jεV} is the set of edges. The relationship between objects can be represented by a relationship or adjacency matrix W, where w_(ij) is set to one when there is a relationship from a source object i to a target object j. For example, the relationship matrix can represent a directed web graph in which the objects are web pages and the relationships represent links from a source web page to a target web page. As another example, the relationship matrix can represent an undirected document graph of a collection of documents in which the objects are documents and the relationships represent the similarity (e.g., cosine similarity) between the documents. The goal of spectral clustering is to identify clusters of related objects.

Spectral clustering can be described as partitioning a graph into two clusters and recursively applying the two-way partitioning to partition the graph into more clusters. The goal of spectral clustering is to partition the graph so that an objective function is minimized. One objective function may be to minimize the cut, that is, ensure that the relationships represented by the edges that are cut are minimized. Another objective function, referred to as “ratio cut,” balances cluster sizes, and another objective function, referred to as “normalized cut,” balances the cluster weights. The membership of the objects in the two clusters A and B can be represented by the following:

$q_{i} = \left\{ \begin{matrix} 1 & {{{if}\mspace{14mu} i} \in A} \\ {- 1} & {{{if}\mspace{14mu} i} \in B} \end{matrix} \right.$ where q_(i) represents the cluster that contains object i. If q_(i) is 1, then the object is in cluster A; and if q_(i) is −1, then the object is in cluster B . The objective function can be represented by the following:

$\quad\begin{matrix} {J = {CutSize}} \\ {= {\frac{1}{4}{\sum\limits_{i,j}{w_{ij}\left\lbrack {q_{i} - q_{j}} \right\rbrack}^{2}}}} \\ {= {\frac{1}{4}{\sum\limits_{i,j}{w_{ij}\left\lbrack {q_{i}^{2} - q_{j}^{2} - {2q_{i}q_{j}}} \right\rbrack}}}} \\ {= {\frac{1}{2}{\sum\limits_{i,j}{{q_{i}\left\lbrack {{d_{i}\delta_{ij}} - w_{ij}} \right\rbrack}q_{j}}}}} \\ {= {\frac{1}{2}{q^{T}\left( {D - W} \right)}q}} \end{matrix}$ where J represents the objective function to be minimized. If q_(i) is represented as continuous values, rather than discrete values, then the solution to the object function is represented by the eigenvectors of the following: (D−W)q=λq where q represents an eigenvector and λ represents an eigenvalue. The Laplacian matrix of the graph is represented as follows: L=D−W Since the Laplacian is semi-positive definite, then the following holds for any value of x: x^(T)Lx≧0 The first eigenvector and the first eigenvalue are represented as follows: q ₁=(1, . . . ,1)^(T) =e ^(T) λ₁=0 The second eigenvector q₂ represents the solution, and the smaller the second eigenvalue λ₂ the more accurate the solution. Thus, q₂ contains an element for each object and the object i is in cluster A if q₁ is greater than zero, and in cluster B otherwise.

Traditionally, spectral clustering first performs an eigenvalue decomposition (“EVD”) and then some heuristics such as k-means are applied to the eigenvectors to obtain the discrete clusters. Unfortunately, eigenvalue decomposition is computationally expensive. For example, the Lanczos algorithm is O(mn²k) and the preconditioned conjugate gradient (“CG-based”) algorithm is O(n²k), where k is the number of the eigenvectors used, n is the number of data points, and m is the number of iteration steps. (See Sorensen, D. C., “Implicitly Restarted Arnoldi/Lanczos Methods for Large-Scale Eigenvalue Computations,” Technical Report, TR-96-40, 1996, and Knyazev, A. V., “Toward the Optimal Preconditioned Eigensolver: Locally Optimal Block Preconditioned Conjugate Gradient Method,” SIAM Journal on Scientific Computing, vol. 23, no. 2, pp. 517-541, 2001.)

SUMMARY

A method and system for clustering objects having relationships by compressing a matrix representing the objects and their relationships is provided. A clustering system generates an original Laplacian matrix representing objects and their relationships. The clustering system initially applies an eigenvalue decomposition solver to the original Laplacian matrix for a number of iterations. After the solver is applied for a few iterations, some elements of the resultant second eigenvector will typically become relatively stable and would not change much in subsequent iterations. The clustering system identifies the elements of the resultant eigenvector that are stable. The clustering system then aggregates the elements of the original Laplacian matrix corresponding to the identified stable elements. The clustering system generates a new Laplacian matrix that is a compressed form of the original Laplacian matrix so that the second eigenvalues of both matrices are the same. The clustering system then applies the eigenvalue decomposition solver to the new Laplacian matrix for a number of iterations. The clustering system repeats the applying of the eigenvalue decomposition solver and the generating of new compressed Laplacian matrices until the new Laplacian matrix is small enough so that a final solution can be generated in a reasonable amount of time. The identified stable elements and the eigenvector of the final Laplacian matrix represent an approximation of the second eigenvector of the original Laplacian matrix that indicates the clustering of the objects.

This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a diagram that illustrates components of the clustering system in one embodiment.

FIG. 2 is a flow diagram that illustrates the processing of the calculate eigenvector component of the clustering system in one embodiment.

FIG. 3 is a flow diagram that illustrates the processing of the compute sub-matrices component of the clustering system in one embodiment.

FIG. 4 is a flow diagram that illustrates the processing of the compute lower-right sub-matrix component of the clustering system in one embodiment.

FIG. 5 is a flow diagram that illustrates the processing of the compute lower-left sub-matrix component of the clustering system in one embodiment.

FIG. 6 is a flow diagram that illustrates the processing of the compute upper-left sub-matrix component of the clustering system in one embodiment.

DETAILED DESCRIPTION

A method and system for clustering objects having relationships by compressing a matrix representing the objects and their relationships is provided. In one embodiment, a clustering system generates an original Laplacian matrix representing objects and their relationships. The clustering system generates the original Laplacian matrix from an adjacency matrix representing a graph with vertices representing the objects and edges representing the relationships between the objects. For example, the graph may be a web graph with web pages as objects and links between web pages as relationships. The graph may also be, for example, a document graph with documents as the objects and similarity scores indicating the relationships between the documents. The clustering system initially applies an eigenvalue decomposition solver (e.g., a CG-based solver) to the original Laplacian matrix for a number of iterations. Because the number of objects may be very large (e.g., millions in the case of web pages), it would be very computationally expensive to apply the eigenvalue decomposition solver for the number of iterations needed to reach a final solution. Thus, the clustering system initially applies the solver for a relatively small number of iterations.

After the solver is applied for a few iterations, some elements of the resultant second eigenvector will typically become relatively stable and would not change much in subsequent iterations. The clustering system identifies the elements of the resultant eigenvector that are stable. The clustering system then aggregates the elements of the original Laplacian matrix corresponding to the identified stable elements. The clustering system generates a new Laplacian matrix that is a compressed form of the original Laplacian matrix. The new Laplacian matrix has a few aggregated elements (e.g., rows and columns) representing the stable elements and elements from the original Laplacian matrix representing the elements not identified as being stable. The clustering system generates the aggregated values so that in the new Laplacian matrix the sum of the elements of each row and column is zero and the square of the sum of the elements of each row and column is one, which are required conditions of a Laplacian matrix. The clustering system generates the new, compressed Laplacian matrix so that the second eigenvalues of both matrices are the same. If the elements that are identified as being stable were actually completely stable, then the second eigenvalue and second eigenvector for the original Laplacian matrix and the new Laplacian matrix would be identical. However, since the elements identified as being stable may not be quite stable, the eigenvalues and eigenvectors may be slightly different. Nevertheless, the eigenvalue and eigenvector of the new Laplacian matrix may be a good approximation of those of the original Laplacian matrix. The clustering system then applies the eigenvalue decomposition solver to the new Laplacian matrix for a number of iterations. The clustering system repeats the applying of the eigenvalue decomposition solver and the generating of new compressed Laplacian matrices until the new Laplacian matrix is small enough so that a final solution can be generated in a reasonable amount of time. The identified stable elements and the eigenvector of the final Laplacian matrix represent an approximation of the second eigenvector of the original Laplacian matrix that indicates the clustering of the objects.

In one embodiment, the clustering system performs a two-way partition using a ratio-cut objective function. Alternatively, a normalized cut objective function may be used. The system generates the original Laplacian matrix as follows: L=D−W wherein L={l_(if)} represents an n×n Laplacian matrix generated from the graph of vertices and edges, n represents the number of objects, W represents the adjacency matrix, and D represents a diagonal matrix with the sum of each row of W assigned to its corresponding diagonal positions. The system represents the two-way ratio-cut spectral clustering as follows: min ξ^(T)Lξ subject to ξ^(T)ξ=1, ξ^(T)e=0   (1) where ξ represents an underlying n-dimensional embedding vector or eigenvector for clustering. This optimization problem is equivalent to finding the eigenvector associated with the second-smallest eigenvalue of the eigenvalue decomposition as represented by the following: Lξ=λξ  (2)

The system repeatedly performs the eigenvalue decomposition using a CG-based eigenvalue decomposition solver for a number of iterations and then identifies the stable elements of the embedding vector. The system then generates a compressed matrix as described below and repeats the eigenvalue decomposition for a number of iterations on the compressed matrix. When the compressed matrix is small enough, the system performs the eigenvalue decomposition until completion and then calculates the eigenvector to give the partition of the objects.

The system compresses the matrix after each repeated eigenvalue decomposition for the number of iterations. After each decomposition, the system identifies the stable elements where k represents the number of unstable elements and n−k represents the number of stable elements. To identify a stable element, the system identifies a certain percentage of the objects with top positive values in the embedding vector and a certain percentage of the objects with top negative values. If the absolute value of an element's gradient is less than a small threshold (e.g., 0.001), the system regards the element as a stable element.

The system then compresses the data representing the stable elements. The system reorganizes the rows and columns of the Laplacian matrix L as represented by the following:

$\begin{matrix} {L = {{{\underset{k}{n - k}\overset{n - {k\mspace{25mu} k}}{\begin{bmatrix} L_{11} & L_{12} \\ L_{21} & L_{22} \end{bmatrix}}}\overset{compress}{\Rightarrow}\hat{L}} = {\underset{k}{2}\overset{2\mspace{45mu} k}{\begin{bmatrix} {\hat{L}}_{11} & {\hat{L}}_{12} \\ {\hat{L}}_{21} & {\hat{L}}_{22} \end{bmatrix}}}}} & (3) \end{matrix}$ The left side of Equation 3 illustrates that the first n−k rows and columns correspond to the stable elements, which are to be fixed in the subsequent iterations, and the remaining k rows and columns correspond to the unfixed elements. Since a Laplacian matrix is symmetrical, L₁₂ ^(T)=L₂₁. After applying the matrix compression, the n−k stable elements are merged to an aggregated positive point and an aggregated negative point. The system thus compresses L into a (k+2)×(k+2) matrix {circumflex over (L)}={{circumflex over (l)}_(ij)} as represented by the right side of Equation 3. To maintain the symmetry of {circumflex over (L)}, the system sets {circumflex over (L)}₁₂ ^(T)={circumflex over (L)}₂₁. Since the matrix compression does not change the interrelations between the unfixed points, L₂₂ remains unchanged in {circumflex over (L)}. The sub-matrices of {circumflex over (L)}^ are referred to as an upper-left sub-matrix {circumflex over (L)}₁₁, an upper-right sub-matrix {circumflex over (L)}₁₂, a lower-left sub-matrix {circumflex over (L)}₂₁, and a lower-right sub-matrix {circumflex over (L)}₂₂.

After the compression of the Laplacian matrix, the original spectral clustering problem of Equation 1 is converted to a smaller-scaled spectral clustering problem represented by the following: min {circumflex over (ξ)}^(T){circumflex over (L)}{circumflex over (ξ)} subject to {circumflex over (ξ)}^(T){circumflex over (ξ)}=1, {circumflex over (ξ)}^(T) e=0   (4) where {circumflex over (ξ)} represents a k+2-dimensional embedding vector. Again, the solution to Equation 4 is the eigenvector corresponding to the second-smallest eigenvalue of the eigenvalue decomposition represented as follows: {circumflex over (L)}{circumflex over (ξ)}={circumflex over (λ)}{circumflex over (ξ)}  (5) The system may represent ξ and {circumflex over (ξ)} by ξ=[ξ₁ ξ₂]^(T) and {circumflex over (ξ)}=[{circumflex over (ξ)}₁ {circumflex over (ξ)}₂]^(T). The system attempts to keep the second-smallest eigenvalues of L and {circumflex over (L)} equal to each other and to keep the embedding values of the unfixed elements calculated from L and {circumflex over (L)} the same, i.e., to keep {circumflex over (λ)}=λ and {circumflex over (ξ)}₂=ξ₂.

The system calculates values for {circumflex over (L)}₁₁, {circumflex over (L)}₁₂, and {circumflex over (L)}₂₁ so that the solution derived using a compressed matrix will be close to the solution that would have been derived using an uncompressed matrix. The constraints of the original optimization problem represented by Equation 1 and the constraints of the new optimization problem can be represented as follows: ξ^(T)ξ₁+ξ₂ ^(T)ξ₂=1, {circumflex over (ξ)}₁ ^(T){circumflex over (ξ)}₂=1

{circumflex over (ξ)}₁ ^(T){circumflex over (ξ)}₁=ξ₁ ^(T)ξ₁ ξ₁ ^(T) e+ξ ₂ ^(T) e=0, {circumflex over (ξ)}₁ ^(T) e+ξ ₂ ^(T) e=0

{circumflex over (ξ)}₁ ^(T) e=ξ ₁ ^(T) e   (6) where {circumflex over (ξ)}₂=ξ₂. To fix the stable elements in the embedding vector of the original problem to some discrete values, the system represents the stable portion of the compressed embedding vector as {circumflex over (ξ)}₁=(a,−b)^(T), a>0,b>0,ξ₁=(c₁,c₂, . . . ,c_(n−k))^(T) and represents the elements of the diagonal matrix as

${d_{1} = {{\xi_{1}^{T}\xi_{1}} = {\sum\limits_{i = 1}^{n - k}\; c_{i}^{2}}}},{d_{2} = {{\xi_{1}^{T}{\mathbb{e}}} = {\sum\limits_{i = 1}^{n - k}\;{c_{i}.}}}}$ The system then substitutes these representations into Equation 6, resulting in a solution represented as follows: a=(d ₂+√{square root over (2d ₁ −d ₂ ²)})/2, b=(−d ₂+√{square root over (2d ₁ −d ₂ ²)})/2   (7) The system can then compute {circumflex over (ξ)}₁ using Equation 7 based on ξ₁, as a necessary condition to guarantee {circumflex over (ξ)}₂=ξ₂.

By decomposing the matrices in Equations 2 and 5 into sub-matrices, and considering {circumflex over (λ)}=λ and {circumflex over (ξ)}₂=ξ₂ the system represents the following: L ₁₁ξ₁ +L ₁₂ξ₂=λξ₁ (i) L₂₁ξ₁ +L ₂₂ξ₂=λξ₂ (ii) {circumflex over (L)} ₁₁{circumflex over (ξ)}₁ +{circumflex over (L)} ₁₂ξ₂=λ{circumflex over (ξ)}₁ (iii) {circumflex over (L)}₂₁{circumflex over (ξ)}₁ +L ₂₂ξ₂=λξ₂ (iv)   (8) From Equations 8(ii) and 8(iv), the equivalences can be represented as follows: {circumflex over (L)}₂₁{circumflex over (ξ)}₁=L₂₁ξ₁   (9) The system can represent Equation 9 as follows:

$\begin{matrix} {{{{a{\hat{l}}_{i\; 1}} - {b{\hat{l}}_{i\; 2}}} = {\sum\limits_{j = 1}^{n - k}\;{c_{j}l_{{({i + n - k - 2})},j}}}},\mspace{14mu}\left( {{i = 3},\ldots\mspace{14mu},{k + 2}} \right)} & (10) \end{matrix}$ Since the sum of each row and column of a Laplacian matrix should be zero, the system represents the sum of the first two elements of a row of the compressed matrix as follows:

$\begin{matrix} {{{{\hat{l}}_{i\; 1} + {\hat{l}}_{i\; 2}} = {\sum\limits_{j = 1}^{n - k}\; l_{{({i + n - k - 2})},j}}},\mspace{31mu}\left( {{i = 3},\ldots\mspace{14mu},{k + 2}} \right)} & (11) \end{matrix}$

A solution to the equation set of Equations 10 and 11 can be represented as follows:

$\begin{matrix} {\begin{matrix} {{\hat{l}}_{i\; 1} = {\left\lbrack {\sum\limits_{j = 1}^{n - k}\;{\left( {b + c_{j}} \right)l_{{({i + n - k - 2})},j}}} \right\rbrack/\left( {a + b} \right)}} \\ {{\hat{l}}_{i\; 2} = {\left\lbrack {\sum\limits_{j = 1}^{n - k}\;{\left( {a - c_{j}} \right)l_{{({i + n - k - 2})},j}}} \right\rbrack/\left( {a + b} \right)}} \end{matrix},\mspace{31mu}\left( {{i = 3},\ldots\mspace{14mu},{k + 2}} \right)} & (12) \end{matrix}$ As represented by Equation 12, the weights between the two aggregated elements and the unfixed elements are linear combinations of the weights between the original fixed elements and the unfixed elements. Thus, the system can efficiently calculate {circumflex over (L)}₁₂ and {circumflex over (L)}₂₁ based on the embedding vector ξ₁ and the Laplacian matrix L using Equation 12.

Since the sum of the elements of a column of a Laplacian matrix is zero, the first two columns of {circumflex over (L)}^ should also be zeros as represented by the following:

$\begin{matrix} {\begin{matrix} {{{\hat{l}}_{11} + {\hat{l}}_{21}} = {- {\sum\limits_{= 3}^{k + 2}\;{\hat{l}}_{i\; 1}}}} \\ {= {{- \left\lbrack {\sum\limits_{i = {n - k + 1}}^{n}\;{\sum\limits_{j = 1}^{n - k}\;{\left( {b + c_{j}} \right)l_{ij}}}} \right\rbrack}/\left( {a + b} \right)}} \\ {= {{- \left\lbrack {{b\;{\mathbb{e}}^{T}L_{21}{\mathbb{e}}} + {{\mathbb{e}}^{T}L_{21}\xi_{1}}} \right\rbrack}/\left( {a + b} \right)}} \end{matrix}\begin{matrix} {{{\hat{l}}_{12} + {\hat{l}}_{22}} = {- {\sum\limits_{= 3}^{k + 2}\;{\hat{l}}_{i\; 2}}}} \\ {= {{- \left\lbrack {\sum\limits_{i = {n - k + 1}}^{n}\;{\sum\limits_{j = 1}^{n - k}{\left( {a - c_{j}} \right)l_{ij}}}} \right\rbrack}/\left( {a + b} \right)}} \\ {= {{- \left\lbrack {{a\;{\mathbb{e}}^{T}L_{21}{\mathbb{e}}} - {{\mathbb{e}}^{T}L_{21}\xi_{1}}} \right\rbrack}/\left( {a + b} \right)}} \end{matrix}{{\hat{l}}_{21} + {\hat{l}}_{12}}} & (13) \end{matrix}$ Since there are four unknown quantities and three equations in Equation 13, the system adds an additional equation to the equation set as represented by the following: ξ^(T)Lξ={circumflex over (ξ)}^(T){circumflex over (L)}{circumflex over (ξ)}  (14)

By decomposing the matrices and vectors of Equation 14 into sub-matrices and considering Equation 9, a decomposition can be represented as follows: ξ₁ ^(T)L₁₁ξ₁={circumflex over (ξ)}₁ ^(T){circumflex over (L)}₁₁{circumflex over (ξ)}₁   (15) Substituting the notations {circumflex over (ξ)}₁,ξ₁,d₁,d₂ into Equation 15 results in the following: a ² {circumflex over (l)} ₁₁−2ab({circumflex over (l)} ₁₂ +{circumflex over (l)} ₂₁)+b ² {circumflex over (l)} ₂₂=ξ₁ ^(T) L ₁₁ξ₁   (16) Thus, by adding Equation 16 to the equation set of Equation 13, a solvable equation set is represented by the following: {circumflex over (l)} ₁₁=[ξ₁ ^(T) L ₁₁ξ₁−2be ^(T) L ₂₁ξ₁ −b ² e ^(T) L ₂₁ e]/(a+b)² {circumflex over (l)} ₁₂ ={circumflex over (l)} ₂₁ =−[ξ₁ ^(T) L ₁₁ξ₁+(a−b)e ^(T) L ₂₁ξ₁ +abe ^(T) L ₂₁ e]/(a+b)²   (17) {circumflex over (l)} ₂₂=[ξ₁ ^(T) L ₁₁ξ₁+2ae ^(T) L ₂₁ξ₁ −a ² e ^(T) L ₂₁ e]/(a+b)²

FIG. 1 is a diagram that illustrates components of the clustering system in one embodiment. The clustering system 100 includes a generate graph matrix 101 and a matrix store 102. The generate graph matrix component generates an adjacency matrix representing a graph of objects and their relationships. The generate graph matrix component stores the adjacency matrix in the matrix store. The clustering system also includes a generate clusters component 103, a calculate eigenvector component 104, and an eigenvalue decomposition solver 105. The generate clusters component invokes the calculate eigenvector component to generate a second eigenvector for the adjacency matrix. The calculate eigenvector component repeatedly invokes the eigenvalue decomposition solver for a few iterations, identifies stable elements of the second eigenvector, and generates a compressed Laplacian matrix until the compressed Laplacian matrix is small enough to have a final solution calculated using the eigenvalue decomposition solver. The stable elements and the final second eigenvector represent the clustering of the objects. The calculate eigenvector component invokes a compute lower-right sub-matrix component 106, a compute lower-left sub-matrix component 107, a compute upper-right sub-matrix component 108, and a compute upper-left sub-matrix component 109 to generate the compressed Laplacian matrix.

The computing device on which the clustering system is implemented may include a central processing unit, memory, input devices (e.g., keyboard and pointing devices), output devices (e.g., display devices), and storage devices (e.g., disk drives). The memory and storage devices are computer-readable media that may be encoded with computer-executable instructions that implement the clustering system, which means a computer-readable medium that contains the instructions. In addition, the instructions, data structures, and message structures may be stored or transmitted via a data transmission medium, such as a signal on a communication link. Various communication links may be used, such as the Internet, a local area network, a wide area network, a point-to-point dial-up connection, a cell phone network, and so on.

Embodiments of the system may be implemented and used in various operating environments that include personal computers, server computers, hand-held or laptop devices, multiprocessor systems, microprocessor-based systems, programmable consumer electronics, digital cameras, network PCs, minicomputers, mainframe computers, computing environments that include any of the above systems or devices, and so on.

The clustering system may be described in the general context of computer-executable instructions, such as program modules, executed by one or more computers or other devices. Generally, program modules include routines, programs, objects, components, data structures, and so on that perform particular tasks or implement particular abstract data types. Typically, the functionality of the program modules may be combined or distributed as desired in various embodiments. For example, a separate computing system may crawl the web and generate an adjacency matrix representing a web graph or may generate a similarity matrix indicating similarity between pairs of documents.

FIG. 2 is a flow diagram that illustrates the processing of the calculate eigenvector component of the clustering system in one embodiment. The component calculates the second eigenvector for the Laplacian matrix. In block 201, the component initializes the iterations of the component. In block 202, the component initializes the original Laplacian matrix to the matrix of the matrix store. In blocks 203-207, the component loops compressing the Laplacian matrix until the dimensions of the compressed Laplacian matrix are less than a threshold. In block 203, the component applies the eigenvalue decomposition solver for a few iterations and identifies the second eigenvector. In block 204, the component identifies stable elements of the second eigenvector. In block 205, the component invokes the compute sub-matrices component to generate the compressed Laplacian matrix. In block 206, the component increments the number of iterations. In decision block 207, if the dimensions of the compressed Laplacian matrix are less than a threshold number of elements, then the component continues at block 208, else the component loops to block 203 to perform the next iteration. In block 208, the component applies the eigenvalue decomposition solver to the Laplacian matrix to generate a final solution. In block 209, the component calculates the second eigenvector corresponding to the second eigenvalue and then completes.

FIG. 3 is a flow diagram that illustrates the processing of the compute sub-matrices component of the clustering system in one embodiment. The component invokes various components to generate sub-matrices of the compressed Laplacian matrix. In block 301, the component invokes the compute lower-right sub-matrix component. In block 302, the component invokes the compute lower-left sub-matrix component. In block 303, the component invokes the compute upper-right sub-matrix component. In block 304, the component invokes the compute upper-left sub-matrix component and then returns.

FIG. 4 is a flow diagram that illustrates the processing of the compute lower-right sub-matrix component of the clustering system in one embodiment. The component sets the lower-right sub-matrix to the elements of the previous Laplacian matrix corresponding to the elements that were not identified as being stable. In block 401, the component initializes the row indexes for the new Laplacian matrix and the previous Laplacian matrix. In blocks 402-407, the component loops initializing the lower-right sub-matrix of the new Laplacian matrix. In block 402, the component increments the row indices for the Laplacian matrices. In decision block 403, if the row index for the rows of the previous Laplacian matrix is greater than the number of rows in the matrix, then the component returns, else the component continues at block 404. In block 404, the component initializes a column index for the new Laplacian matrix and the previous Laplacian matrix. In blocks 405-407, the component loops setting the values of each column for the selected row. In block 405, the component increments the index of the column of the new Laplacian matrix and the original Laplacian matrix. In decision block 406, if the index of columns is greater than the number of columns in the previous Laplacian matrix, then the component loops to block 402 to increment the next row, else the component continues at block 407. In block 407, the component sets the value within the lower-right sub-matrix of the new Laplacian matrix and then loops to block 405 to select the next column.

FIG. 5 is a flow diagram that illustrates the processing of the compute lower-left sub-matrix component of the clustering system in one embodiment. The component sets the values of the lower-left sub-matrix as indicated by Equation 12. Although not shown, the compute upper-right sub-matrix component sets the sub-matrix to the transform of the lower-left sub-matrix. In block 501, the component calculates the values according to Equation 7. In block 502, the component sets the row index for the new Laplacian matrix. In block 503, the component increments the row index. In decision block 504, if the row index is greater than the number of dimensions of the new Laplacian matrix, then the component returns, else the component continues at block 505. In block 505, the component initializes the column index. In block 506, the component increments the column index. In decision block 507, if the column index is greater than the number of stable elements, then the component continues at block 510, else the component continues at block 508. In block 508, the component accumulates the element of the first column for the selected row. In block 509, the component accumulates the element of the second column for the selected row. The component then loops to block 506 to increment to the next column of the new Laplacian matrix. In block 510, the component adjusts the accumulated values and then loops to block 501 to increment the next row.

FIG. 6 is a flow diagram that illustrates the processing of the compute upper-left sub-matrix component of the clustering system in one embodiment. In block 601, the component sets the upper-left element of the sub-matrix. In block 602, the component sets the lower-left element and the upper-right element of the sub-matrix. In block 603, the component sets the lower-right element of the sub-matrix and then returns.

Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms of implementing the claims. The clustering system may be used by various applications (e.g., search engines, information retrieval systems) to cluster objects of various types with relationships. Accordingly, the invention is not limited except as by the appended claims. 

1. A method in a computing device for clustering objects having relationships, the method comprising: generating an original Laplacian matrix representation of a graph with vertices representing the objects and edges representing the relationships; applying an eigenvalue decomposition solver to the original Laplacian matrix for a number of iterations; identifying stable elements of an eigenvector resulting from the applying of the solver; aggregating elements of the original Laplacian matrix corresponding to the identified stable elements; generating a compressed Laplacian matrix from the aggregated elements and elements of the original Laplacian matrix corresponding to the elements not identified as stable; and applying an eigenvalue decomposition solver to the compressed Laplacian matrix to arrive at a solution wherein the resulting eigenvector represents a clustering of the objects wherein the objects are documents; and wherein the aggregating of the elements generates aggregate values so that the subsequent applying of the eigenvalue decomposition solver to the compressed Laplacian matrix results in a second eigenvalue that is same as the second eigenvalue of the uncompressed Laplacian matrix except for a stable element not being completely stable.
 2. The method of claim 1 wherein the compressed Laplacian matrix includes an upper-left sub-matrix, an upper-right sub-matrix, a lower-left sub-matrix, and a lower-right sub-matrix wherein the elements of the upper-left sub-matrix, the upper-right sub-matrix, and the lower-left sub-matrix are aggregated elements based on the identified stable elements of the eigenvector and the elements of the lower-right sub-matrix are the elements of the lower-right sub-matrix of the uncompressed Laplacian matrix for the elements not identified as being stable.
 3. The method of claim 2 wherein the values of the upper-left sub-matrix are represented by the following: {circumflex over (l)} ₁₁=[ξ₁ ^(T) L ₁₁ξ₁−2be ^(T) L ₂₁ξ₁ −b ² e ^(T) L ₂₁ e]/(a+b)² {circumflex over (l)} ₁₂ ={circumflex over (l)} ₂₁=−[ξ₁ ^(T) L ₁₁ξ₁+(a+b)e ^(T) L ₂₁ξ₁ −abe ^(T) L ₂₁ e]/(a+b)² {circumflex over (l)} ₂₂=[ξ₁ ^(T) L ₁₁ξ₁2ae ^(T) L ₂₁ξ₁ −a ² e ^(T) L ₂₁ e]/(a+b)².
 4. The method of claim 2 wherein the values of the lower-left sub-matrix are represented by the following: $\begin{matrix} {{\hat{l}}_{i\; 1} = {\left\lbrack {\sum\limits_{j = 1}^{n - k}\;{\left( {b + c_{j}} \right)l_{{({i + n - k - 2})},j}}} \right\rbrack/\left( {a + b} \right)}} \\ {{\hat{l}}_{i\; 2} = {\left\lbrack {\sum\limits_{j = 1}^{n - k}\;{\left( {a - c_{j}} \right)l_{{({i + n - k - 2})},j}}} \right\rbrack/\left( {a + b} \right)}} \end{matrix},\mspace{31mu}{\left( {{i = 3},\ldots\mspace{14mu},{k + 2}} \right).}$
 5. The method of claim 4 wherein the values of the upper-right sub-matrix are represented by a transform of the lower-left sub-matrix.
 6. The method of claim 1 wherein the applying of an eigenvalue decomposition solver to the compressed Laplacian matrix is performed for a certain number of iterations and then repeatedly identifies stable elements of an eigenvector resulting from applying the solver for a number of iterations, aggregates elements of the compressed Laplacian matrix corresponding to the identified stable elements, generates a further compressed Laplacian matrix from the aggregated elements and elements of the previously compressed Laplacian matrix corresponding to the elements not identified as stable, and applies an eigenvalue decomposition solver to the further compressed Laplacian matrix for a number of iterations until the eigenvalue decomposition solver arrives at a final solution.
 7. The method of claim 1 wherein the documents are web pages and the relationships between the web pages are links from a source web page to a target web page.
 8. The method of claim 1 wherein the relationships between the documents are document similarity scores.
 9. The method of claim 1 wherein the eigenvalue decomposition solver is a conjugate gradient solver.
 10. The method of claim 1 wherein the eigenvector is the second eigenvector.
 11. A computer-readable medium encoded with instructions for controlling a computing device to cluster objects having relationships, by a method comprising: generating a Laplacian matrix representation of a graph with vertices representing the objects and edges representing the relationships; repeatedly applying an eigenvalue decomposition solver to a current Laplacian matrix for a number of iterations; identifying elements of an eigenvector resulting from applying the solver as being stable; aggregating elements of the current Laplacian matrix corresponding to the identified stable elements; and generating a new current Laplacian matrix from the aggregated elements and elements of the previous current Laplacian matrix corresponding to the elements not identified as being stable until a size of the new current Laplacian matrix is less than a threshold; and applying an eigenvalue decomposition solver to the new current Laplacian matrix to arrive at a final solution wherein the resulting eigenvector represents a clustering of the objects wherein the objects are web pages and the relationships between the web pages are links from a source web page to a target web page, and wherein the aggregating of the elements generates aggregate values so that the subsequent applying of the eigenvalue decomposition solver to the new current Laplacian matrix results in a second eigenvalue that is substantially the same as the second eigenvalue of the previous current Laplacian matrix except for a stable element not being completely stable.
 12. The computer-readable medium of claim 11 wherein a new current Laplacian matrix includes an upper-left sub-matrix, an upper-right sub-matrix, a lower-left sub-matrix, and a lower-right sub-matrix wherein the elements of the upper-left sub-matrix, the upper-right sub-matrix, and the lower-left sub-matrix are aggregated elements based on the identified stable elements of the eigenvector and the previous current Laplacian matrix and the elements of the lower-right sub-matrix are elements of the lower-right sub-matrix of the previous current Laplacian matrix for the elements not identified as being stable.
 13. The computer-readable medium of claim 12 wherein the values of the upper-left sub-matrix are represented by the following: {circumflex over (l)} ₁₁=[ξ₁ ^(T) L ₁₁ξ₁−2be ^(T) L ₂₁ξ₁ −b ² e ^(T) L ₂₁ e]/(a+b)² {circumflex over (l)} ₁₂ ={circumflex over (l)} ₂₁=−[ξ₁ ^(T) L ₁₁ξ₁+(a+b)e ^(T) L ₂₁ξ₁ −abe ^(T) L ₂₁ e]/(a+b)² {circumflex over (l)} ₂₂=[ξ₁ ^(T) L ₁₁ξ₁2ae ^(T) L ₂₁ξ₁ −a ² e ^(T) L ₂₁ e]/(a+b)².
 14. The computer-readable medium of claim 12 wherein the values of the lower-left sub-matrix are represented by the following: $\begin{matrix} {{\hat{l}}_{i\; 1} = {\left\lbrack {\sum\limits_{j = 1}^{n - k}\;{\left( {b + c_{j}} \right)l_{{({i + n - k - 2})},j}}} \right\rbrack/\left( {a + b} \right)}} \\ {{\hat{l}}_{i\; 2} = {\left\lbrack {\sum\limits_{j = 1}^{n - k}\;{\left( {a - c_{j}} \right)l_{{({i + n - k - 2})},j}}} \right\rbrack/\left( {a + b} \right)}} \end{matrix},\mspace{31mu}{\left( {{i = 3},\ldots\mspace{14mu},{k + 2}} \right).}$
 15. The computer-readable medium of claim 14 wherein the values of the upper-right sub-matrix are represented by a transform of the lower-left sub-matrix.
 16. A computing device for clustering objects having relationships, comprising: a data store having a Laplacian matrix representation of a graph with vertices representing the objects and edges representing the relationships; a memory storing computer-executable instructions of: a component that applies an eigenvalue decomposition solver to a Laplacian matrix for a number of iterations; a component that identifies stable elements of an eigenvector resulting from the component that applies, an element being stable when the absolute value of its gradient is less than a threshold gradient; a component that aggregates elements of a Laplacian matrix corresponding to the identified stable elements; a component that generates a Laplacian matrix from the aggregated elements and elements of the previous Laplacian matrix corresponding to the elements not identified as stable, such that a single aggregate element represents multiple stable elements in the generated Laplacian matrix; and a component that applies an eigenvalue decomposition solver to a Laplacian matrix to arrive at the final solution wherein a resulting eigenvector represents a clustering of the objects; and a processor for executing the computer-executable instructions stored in the memory.
 17. A computing device for clustering obiects having relationships, comprising: a data store having a Laplacian matrix representation of a graph with vertices representing the objects and edges representing the relationships; a memory storing computer-executable instructions of: a component that applies an eigenvalue decomposition solver to a Laplacian matrix for a number of iterations; a component that identifies stable elements of an eigenvector resulting from the component that applies; a component that aggregates elements of a Laplacian matrix corresponding to the identified stable elements; a component that generates a Laplacian matrix from the aggregated elements and elements of the previous Laplacian matrix corresponding to the elements not identified as stable; and a component that applies an eigenvalue decomposition solver to a Laplacian matrix to arrive at a final solution wherein a resulting eigenvector represents a clustering of the objects; and a processor for executing the computer-executable instructions stored in the memory wherein the component that aggregates generates aggregate values so that the subsequent applying of the eigenvalue decomposition solver to the Laplacian matrix results in a second eigenvalue that is the same as the second eigenvalue of the previous Laplacian matrix except for a stable element not being completely stable.
 18. A computing device for clustering objects having relationships, comprising: a data store having a Laplacian matrix representation of a graph with vertices representing the objects and edges representing the relationships; a memory storing computer-executable instructions of: a component that applies an eigenvalue decomposition solver to a Laplacian matrix for a number of iterations: a component that identifies stable elements of an eigenvector resulting from the component that applies; a component that aggregates elements of a Laplacian matrix corresponding to the identified stable elements a component that generates a Laplacian matrix from the aggregated elements and elements of the previous Laplacian matrix corresponding to the elements not identified as stable; and a component that applies an eigenvalue decomposition solver to a Laplacian matrix to arrive at a final solution wherein a resulting eigenvector represents a clustering of the obiects; and a processor for executing the computer-executable instructions stored in the memory wherein a generated Laplacian matrix includes an upper-left sub-matrix, an upper-right sub-matrix, a lower-left sub-matrix, and a lower-right sub-matrix wherein the elements of the upper-left sub-matrix, the upper-right sub-matrix, and the lower-left sub-matrix are aggregated elements based on the identified stable elements of the eigenvector and the previous Laplacian matrix and the elements of the lower-right sub-matrix are the elements of the lower-right sub-matrix of the previous Laplacian matrix for the elements not identified as being stable. 